Turbo decoding techniques

ABSTRACT

Techniques are disclosed for turbo decoding orthogonal frequency division multiplexing OFDM symbols. Techniques for combined turbo decoding and equalization are disclosed. The disclosed techniques can be implemented in receivers that receive wired or wireless OFDM signals and produce data and control bits by decoding the received signals.

CROSS REFERENCE TO RELATED APPLICATIONS

This patent application claims the benefit of U.S. Provisional PatentApplication No. 61/802,038, filed on Mar. 15, 2013. The entire contentof the before-mentioned provisional patent application is incorporatedby reference herein.

TECHNICAL FIELD

This document relates to digital communication.

BACKGROUND

Many modern digital communication systems use orthogonal frequencydivision multiplexing (OFDM) modulation technology. Various types oferror correction codes are used to increase robustness of transmittedsignals. For example, OFDM and error coding is used in wirelesstechnologies such as Long Terra Evolution (LTE) and wired communicationtechnologies such as digital subscriber line (DSL).

SUMMARY

This document describes technologies, among other things, for turbodecoding of OFDM modulation signals. In some implementations, a combinedturbo decoding and turbo equalization technique may be used.

In one aspect, methods, systems and apparatus for turbo decodingincluding serially concatenated TCM and Reed Solomon block codes, withconvolutional interleaving, are disclosed.

In another aspect, methods, systems and apparatus for turbo decoding ofserially concatenated TCM and Reed Solomon block codes, withconvolutional interleaving, using constellations of variable sizes aspart of the same code block are disclosed. Where the least significantbits of constellations are both block coded and trellis coded, and themost significant bits are block coded only.

In another aspect disclosed techniques provide for a buffer forconstellations from more than one OFDM symbol, which provides for turbodecoding of convolutional interleaving over more than one OFDM symbol isdisclosed. Alternatively, this buffer may be after the SISOconstellation demapper, for demapped constellations.

In another aspect, a SISO synchronization buffer for the block codedonly bits from the SISO constellation demapper is disclosed. The bufferalso accepts the bits from the SISO trellis decoder, and output of thesoft synchronization buffer, and assembles them into bytes.

In another aspect, a turbo decoder comprising a feedback path, and aSISO data frame buffer for one or more data frames is disclosed.

In another aspect, methods, systems and apparatus for combined turbodecoding and turbo equalization include buffering of one or more OFDMsymbols which is greater than or equal to the interleaving between thecomponent codes of a concatenated code. Where the error correcting codeis a parallel or serial concatenated code (i.e., consists of two or morecomponent codes, and one or more interleavers,) or LDPC code. Theinterleaving may extend over more than one OFDM symbol.

In some implementations buffering of OFDM symbols, and ISI subtractionin the frequency domain is performed.

In another aspect, methods, systems and apparatus Hard or softre-encoded data to the decision feedback equalizer from two classes ofdata: 1.) A synchronization symbol. Or an inner or first componentdecoder. 2.) An outer or second component decoder. Or either componentdecoder on second or later decoding iterations. The second class of datamay only available after the interleaver or deinterleaver delay, and sois not available for the first iteration of decision feedbackequalization.

In another aspect, the disclosed data reception techniques use aconstellation demapper and mapper that supports variable sizeconstellations.

In another aspect, a transmitted symbol replica includes replication ofPAR reduction.

In another aspect, IFFT and FFT fast convolution for replica of thechannel and receiver prefiltering may be performed.

In another aspect, summing of the received signal replica and echoreplica (for any echo cancellation) in the frequency domain may beperformed.

These and other aspects, and their implementations and variations areset forth in the drawings, the description and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of turbo coding and modulation as used in aLong Term Evolution (LTE) system.

FIG. 2 is a block diagram of an LTE turbo encoder.

FIG. 3 illustrates cyclic extension with windowing.

FIG. 4 illustrates a digital subscriber loop (DSL) transmitter andreceiver with non-iterative decoder.

FIG. 5 illustrates an encoder for parallel concatenated convolutionalcodes.

FIG. 6 illustrates an encoder for serially concatenated trellis codedmodulation (TCM) and block codes.

FIG. 7 illustrates a trellis encoder having a convolutional encoder andbit convertor.

FIG. 8 illustrates a generalized triangular interleaver.

FIG. 9 depicts various constellations used in digital communications.

FIG. 10 illustrates a turbo decoder for parallel concatenatedconvolutional codes.

FIG. 11 illustrates a turbo decoder for serially concatenated TCM andblock codes.

FIG. 12 is a block diagram representation of turbo decoder used in a DSLreceiver.

FIG. 13 is a flow-chart representation of turbo decoding for DSLcontrol.

FIG. 14 is a block diagram representation of a pipelined decoding modulefor DSL.

FIG. 15 illustrates a single carrier n-QAM decision feedback turboequalizer.

FIG. 16 is a block diagram representation of a combined turbo equalizerand turbo decoder for orthogonal frequency division multiplexing (OFDM)signal.

FIG. 17 is a block diagram representation of a combined turbo equalizerand turbo decoder for OFDM with frequency domain OFDM symbol bufferingand inter symbol interference (ISI) cancellation.

FIG. 18 illustrates a re-encoder for parallel concatenated convolutionalcodes.

FIG. 19 illustrates a re-encoder for serially concatenated TCM and blockcodes.

FIG. 20 is a flowchart implementation for a combined turbo equalizationand turbo decoding for OFDM control.

FIG. 21 is a flowchart representation of a process of turbo decoding andturbo equalization.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Techniques for turbo decoding and turbo equalization of received signalsto produce data bits are disclosed. In the description, the followingabbreviations are used.

3GPP LTE=Third Generation Partnership Project, Long Term Evolution

ADSL=Asymmetric Digital Subscriber Line

AFE=Analog Front End

ASIC=Application Specific Integrated Circuit

BPSK=Binary Phase Shift Keying

DFE=Decision Feedback Equalizer

DSL=Digital Subscriber Line

EPROM=Erasable Programmable Read Only Memory

EEPROM=Electrically Erasable Programmable Read Only Memory

FEQ=Frequency Domain Equalizer

FFT=Fast Fourier Transform

FPGA=Field Programmable Gate Array

IEEE=Institute of Electrical and Electronics Engineers

IFFT=Inverse Fast Fourier Transform

ISI=Inter Symbol interference

ITU=International Telecommunications Union

LAN=Local Area Network

LDPC=Low Density Parity Check

LLR=Log Likelihood Ratio

LSBs=Least Significant Bits

LTE=Long Term Evolution

MAP=Maximum a Posteriori

MSBs=Most Significant Bits

n-QAM=Quadrature Amplitude Modulation

n-QPSK=Quadrature Phase Shift Keying

OFDM=Orthogonal Frequency Division Multiplexing

PAR=Peak to Average Ratio

SISO=Soft Input Soft Output

SOVA=Soft Output Viterbi Algorithm

TCM=Trellis Coded Modulation

VDSL=Very High Speed Digital Subscriber Line

The International Telecommunications Union (ITU) standards forAsymmetric Digital Subscriber Line (ADSL) and Very High Speed DigitalSubscriber Line (VDSL) transceivers specify an error correcting codeconsisting of concatenated trellis coded modulation (TCM) and ReedSolomon block codes, with convolutional interleaving. The standards alsospecify Orthogonal Frequency Division Multiplexing (OFDM) for modulationand demodulation. OFDM is a multicarrier technique, which uses anInverse Fast Fourier Transform (IFFT) for modulation and a Fast FourierTransform (FFT) for demodulation, The sizes of the signal constellationsin the frequency bins of the IFFT and FFT (i.e. assigned to each of thecarriers) are variable. And the least significant bits of theconstellations are both block coded and trellis coded, while the mostsignificant bits are block coded only.

Turbo decoding significantly improves the coding gain of errorcorrecting codes. Turbo decoding is the iterative decoding ofconcatenated codes. It was originally designed tier parallelconcatenated convolutional codes, and has been extended to seriallyconcatenated convolutional codes, concatenated trellis coded modulation,and concatenated trellis coded modulation and block codes.

Present day receivers compatible with the ADSL and VDSL standards havedone a single decoding; they have not been able to decode iteratively.In some embodiments, their coding gain would be improved by being ableto turbo decode concatenated TCM and Reed Solomon block codes, withconvolutional interleaving, using OFDM with variable sizeconstellations.

FIG. 1 depicts a block diagram example of a DST transmitter and a DSTreceived with a non-iterative decoder. Conventional decoding of theconcatenated code in the ADSL and VDSL standards uses a single pass,non-iterative, decoder. A soft input constellation demapper precedes thedecoder. The inputs to the constellation demapper are constellationpoints, which each represent from one to fifteen bits, and how many bitseach constellation represents. The outputs are encoded bits. The outputsfor the two least significant bits (which are both block coded andtrellis coded) are soft. outputs (i.e. 0 and 1 with reliabilityinformation.) And the outputs tier the thirteen most significant bits(which are block coded only) are hard outputs (i.e. 0 and 1.) The softoutputs from the constellation demapper go to a soft input hard outputViterbi decoder. The hard outputs from the Viterbi decoder, and from theconstellation demapper, go to a synchronization buffer. Which delays theoutputs from the constellation demapper, to account for the latency ofthe Viterbi decoder, and assembles the bits into bytes. The bytes fromthe synchronization buffer go to convolutional deinterleaver. Thedeinterleaved bytes become the codewords input to a hard input hardoutput Reed Solomon decoder. Some hard output Reed Solomon decoders,while using hard information at the bit level, can use soft informationat the byte level for errors and erasures decoding.

Conventional techniques for turbo decoding of concatenated trellis codedmodulation and block codes has been for a fixed size constellation, withall of the bits of the constellation being both block coded and trelliscoded. FIG. 2 illustrates an encoder for parallel concatenatedconvolutional codes. FIG. 3 illustrates an encoder for seriallyconcatenated trellis coded modulation (TCM) and block codes. FIG. 4illustrates a trellis encoder having a convolutional encoder and a bitconvertor.

As an alternative to turbo decoding the code in the ADSL and VDSLstandards, there have been proposals to add different types of codes tothe standards, for which there is prior art for iterative decoding.There have been proposals to add parallel concatenated convolutionalcodes, parallel concatenated convolutional codes with trellis codedmodulation, and low density parity check codes.

TURBO DECODING OF SERIALLY CONCATENATED TCM AND REED SOLOMON BLOCKCODES, WITH CONVOLUTIONAL INTERLEAVING

In some embodiments, turbo decoding of serially concatenated TCM andReed Solomon block codes, with convolutional interleaving, usingconstellations of variable sizes as part of the same code block may beperformed. The least significant bits of constellations are both blockcoded and trellis coded, and the most significant bits are block codedonly.

A buffer may be provided for constellations from more than one OFDMsymbol. The buffer provides for turbo decoding of convolutionalinterleaving over more than one OFDM symbol, Alternatively, this buffermay be after the SISO constellation demapper, for demappedconstellations.

A SISO synchronization buffer may be configured for the block coded onlybits from the SISO constellation demapper and may also accept the bitsfrom the SISO trellis decoder, and output of the soft synchronizationbuffer, and assemble them into bytes.

In the turbo decoder feedback path, a SISO data frame buffer may beprovided for buffering for one or more data frames.

In some embodiments, a turbo decoder supports, or decoders, the seriallyconcatenated TCM and Reed Solomon block coding, with convolutionalinterleaving, in the ADSL and VDSL standards. It supports variable sizedconstellations (see, e.g., FIG. 6), where the least significant bits areboth block coded and trellis coded, and the most significant bits areblock coded only. And convolutional interleaving over multiple OFDM timedomain symbols.

In some embodiments, a turbo decoder includes modules for turbo decodingthe error correcting code in the standards, including: A buffer forconstellations from more than one OFDM symbol. A SISO constellationdemapper. A SISO trellis decoder. A SISO synchronization buffer. A SISOconvolutional deinterleaver. A SISO Reed Solomon decoder. A SISOconvolutional deinterleaver. A SISO data frame buffer.

ADSL and VDSL are multicarrier systems which use an Inverse Fast FourierTransform (IFFT) for modulation, and a Fast Fourier Transform (FFT) fordemodulation. Each of the frequency bins of the IFFT and FFT contains apoint in a signal constellation. Where each constellation point is apoint in the Euclidean plane, described by a complex number, Z=X+jY,which represents modulated data. And for hard data, X and Y are oddintegers. The constellations may be of variable sizes, i.e. eachconstellation point may represent from 1 to 15 bits. I.e. the modulationfor each frequency bin can range from BPSK to 32K QAM. Some frequencybins may be unused, and represent 0 bits. A table stores the number ofdata bits for each frequency bin (subcarrier) from f=0 to the highesttransmitted frequency bin. n data bits are mapped to one of 2̂nconstellation points.

The Reed Solomon coding used by ADSL and VDSL standards is aconventional byte based Reed Solomon code with its operations in GaloisField GF(2⁸). Where the number of message bytes is k, the number ofparity bytes r, and the number of codeword bytes n=k+r.

The message polynomial is m(x)=m ₀ x _(k−1) +m ₁ x ^(k−2) + . . . +m_(k−2) x+m _(k−1).

The parity polynomial is p(x)=p ₀ x ^(r−1) +p ₁ x ^(r−2) + . . . +p_(r−2) x+p _(r−1).

The generator polynomial is g(x)=(x+α)(x+α ²)(x+α ³) . . . (x+α ¹).

The codeword is c(x)=m(x)x ^(r) +p(x).

And p(x)=m(x)x ^(r) mod g(x).

FIG. 5 illustrates a generalized triangular interleaver. Theconvolutional interleaver used by the ADSL and VDSL standards is ageneralized triangular interleaver. The bytes of the Reed Solomoncodewords are delayed by an amount that varies linearly with the byteindex i. Byte B_(i) is delayed by (D−1)×i bytes, where D is theinterleaver depth. And (D−1) M×K. Where K is the interleaver blocklength (or number of delay lines), and M is a nonnegative integer numberof bytes.

Referring again to FIG. 4, the trellis coding used by the ADSL and VDSLstandards is Wei's 4D 16 state code. Bits u₂ . . . u₁ are input to arecursive systematic convolutional encoder of rate ⅔, which outputs bitsU₂ . . . u₀. Bits u₃ . . . u₀ are input to a bit converter withequations v₁=u₁u₃, v₀=u₃, w₁=u₀+u₁+u₂+u₃, w₀=u₂+u₃. Bits v₁ . . . v₀,and w₁ . . . w₀ become the two least significant bits input to theconstellation mapper on alternate mappings.

With reference to FIG. 9, in some embodiments, the received time domainDSL signal is filtered, and may be equalized in the time domain. Thecyclic extension is removed from the filtered and equalized signal,giving a time domain signal whose length matches that of the modulatingIFFT. An FFIT transforms the time domain signal to points in signalconstellations in the frequency domain. Giving one constellation pointfor each used frequency bin. The constellation points go to a FrequencyDomain Equalizer (FEQ), which does one complex multiplication of eachconstellation point, to correct amplitude and phase.

The equalized constellation points go to a constellations buffer for theconstellation points from more than one OFDM symbol. The constellationsbuffer is large enough for the extent of the convolutional interleaving,as extrinsic information is fed back from Reed Solomon codeword bytesthat may have been interleaved over more than one OFDM symbol. In someembodiments, the structure of the constellations buffer is a slidingwindow or shift register type of structure. Then a parallel to serialconverter outputs the constellation points to a SISO constellationdemapper. Alternatively demapped constellations could be buffered.

The SISO constellation demapper has two inputs: Constellation pointswhich represent from one to fifteen bits. And the number of bits thateach constellation represents. A bits table stores the number of bitscarried by each frequency him It outputs encoded data for soft decoding.For error correcting codes, soft inputs and outputs refer to data bitsrepresented as a log likelihood ratio (LLR). Where for data bit d,LLR(d)=log (Pr(d=1)/Pr(d=0)), or an approximation. The SISOconstellation demapper may also accept extrinsic information which hasbeen re-encoded and re-mapped by a SISO constellation mapper.

Decoders may output LLRs calculated exactly by the MAP algorithm, orapproximately using the concept of a concurrent path (for trellisdecoders) or concurrent codeword (for block decoders). Call the receivedcodeword R, the set of soft received bits r_(n). And D the hard decodedcodeword, with minimum Euclidean distance to R, and bits d_(n). CallC_(n), the concurrent codeword, with minimum Euclidean distance to R,and c_(n)=˜d_(n). Then approximations used include:LLR_(n)≈d_(n)×((R−C_(n))−(R−D)). AndLLR_(n)≈d_(n)×((R−C_(n))²−(R−D)²)/4.

All of the encoded bits are Reed Solomon block coded, and interleaved.The least significant bits are also trellis coded, and go to a SISOtrellis decoder. For two to fifteen bit constellations, the two leastsignificant bits are trellis coded, for one bit constellations, one bitis trellis coded.

The notation L(;;)_(n) is used to refer to the log likelihood ratios ofbits of iteration n. Where the first parameter refers to the code: i forthe inner code, and o for the outer code. The second parameter refers tothe decoders: i for the input, o for the output, e for extrinsicinformation, and a for a priori information. And the third parameter isoptional, and refers to the range of bits: m for most significant bits(MSBs), and 1 for least significant bits (LSBs).

FIG. 10 is a flowchart representation of turbo decoding for DSL control.FIG. 11 is a block diagram representation of a pipelined decoding modulefor DSL. The SISO trellis decoder has two inputs. The 2 LSBs from theSISO constellation demapper are the received encoded bits input to theSISO trellis decoder. And 3 bits of a priori information are input tothe SISO trellis decoder. For the first iteration the a prioriinformation=0. For subsequent iterations, the a priori information is 3soft bits extracted from the SISO data frame buffer (which are 3 decodedbits), which correspond to 4 encoded LSBs from the SISO constellationdemapper, i.e., 2 encoded LSBs from two successive constellations. The apriori information to the inner decoder L(i;a) is the buffered 3 leastsignificant bits of the interleaved extrinsic information from theprevious iteration of the outer decoder, ˜L(o;e). With L(i;o) the outputof the inner decoder, and the inner extrinsic information,L(i;e)=L(i;a).

With reference to FIG. 7 and FIG. 8, in some embodiments, the algorithmsfor the SISO trellis decoding are the logarithmic version of the Maximuma Posteriori algorithm (log MAP), and the Soft Output Viterbi Algorithm(SUVA). Both perform exhaustive searches of the trellis, and arepractical for a 16 state code. Both the log MAP, and SOYA algorithm haveversions which use forward and backward passes, or are forward only witha sliding window. The trellis code used in the ADSL and VDSL standardsis Wei's 4-dimensional, 16 state trellis code, which places specificrequirements on the decoder. The log MAP algorithm uses additions inplace of multiplications in the MAP algorithm, and the max log MAPalgorithm has been shown to be equivalent to the Soft Output ViterbiAlgorithm. At low E_(b)/N₀ ratios, the log MAP algorithm may outperformthe SOYA by up to 0.7 dB.

Referring to FIG. 10 and FIG, 11, the extrinsic information from theinner decoder L(i;e), and the interleaved msbs to the outer decoder'sinput ˜L(o;i;m) are input to the SISO synchronization buffer. The SISOsynchronization buffer is used to synchronize the MSBs from the SISOconstellation demapper, which are block coded only, with the innerextrinsic information from the SISO trellis decoder, L(i;e), which has adecoding latency. Note that constellations of 3 or more bits have msbs.After synchronization, the soft bits are assembled into soft bytes. Thesoft bytes from the SISO synchronization buffer go to a convolutionaldeinterleaver. The deinterleaved soft bytes are the codewords, L(o;i),input to the outer SISO Reed Solomon decoder.

Next, SISO decoding of the outer Reed Solomon code is performed. WithL(o;i) the systematic input to the decoder, and L(o;o) the output of thedecoder, the outer extrinsic information is L(o;e)=L(o;o)−L(o;i).

The log MAP and SOYA algorithms are currently impractical for decodingReed Solomon codes. Some other possible methods of SISO Reed Solomondecoding include: Reliability assisted hard decision decodingalgorithms, including Chase type algorithms. Algebraic list decodingalgorithms, including the Koetter and Vardy algorithm, Orderedstatistics decoding, including the box and match algorithm, anditerative decoding algorithms.

The outer extrinsic information L(o;e), from the SISO Reed Solomondecoder, is fed back to a SISO convolutional interleaver, giving˜L(o;e), and then to a SISO data frame buffer. With a convolutionalinterleaver the interleaved outer extrinsic information is calculatedfrom bits that are in three stages of decoding: Bits that have completeddecoding by the outer decoder. Bit that are being decoded by the outerdecoder. Bits for which an outer codeword has not yet beendeinterleaved, and have extrinsic information that equals zero.

The interleaved outer extrinsic information may extend over more thanone OFDM symbol. Constellations from one or more OFDM symbols are readfrom the constellations buffer, and input to the SISO constellationsdemapper, in synchronization with their a priori information.

Decoding iterations continue through SISO trellis decoding, SISOsynchronization, deinterleaving, and SISO Reed Solomon decoding.

Iterative decoding is considered to have converged when the SISOdecoders agree on the output (outputs match). The number of iterationsis typically greater than or equal to two, and less than or equal tosixty four, after which hard bits can be output as the decoded data. Insome embodiments, a hard output algebraic Reed Solomon decoder may alsobe incorporated, and hard bits output when it indicates a successfuldecoding.

The turbo architecture for iterative decoding uses one of each of thedecoding blocks, and feedback. A pipelined architecture (which isanalogous to loop unrolling) is an alternative. With reference to FIG.11, a pipelined architecture contains multiple decoding modules,typically one module for each decoding iteration. In the pipelinedarchitecture for decoding DSL, a decoding module contains: A SISOtrellis decoder, a SISO synchronization buffer, a convolutionaldeinterleaver, a SISO Reed Solomon decoder, a convolutional interleaverand a SISO data frame buffer.

In some embodiments, the decoding modules are connected serially. Withthe inputs to each module being the output of the SISO constellationdemapper, and the a priori information from the previous module's SISOdata frame buffer. The outputs being the a phori information from theSISO data frame buffer, and hard bits from the SISO Reed Solomondecoder. The a priori infOrmation to the first module is set to zero.

The pipelined architecture decoding modules may also each contain a SISOconstellation demapper, and SISO constellation mapper. In which casethey would accept constellations as inputs, rather than the output ofthe &ISO constellation demapper.

COMBINED TURBO DECODING AND TURBO EQUALIZATION

Orthogonal frequency division multiplexing (OFDM) is a multicarriermodulation and demodulation technique, that uses an inverse fast Fouriertransform (IFFT) for modulation and a fast Fourier transform (FFT) fordemodulation. The frequency bins of the transforms act as carriers, andmay use signal constellations of one or more bits (i.e. from BPSK ton-QPSK). A cyclic extension may be added to the output of the IFFT fortransmission, and removed on reception before the input to ITT. An OFDMsymbol consists of the output of the transmit IFFT, with any cyclicextension, and after any peak to average ratio (PAR) reduction. Thecyclic extension acts as a guard interval, so that intersymbolinterference (ISI) that is within the guard interval doesn't affect thedemodulated signal. ISI is typically constrained to fit within the guardinterval by a linear equalizer, or extending the guard interval, or acombination of the two. Both discard some of the received energy beforedemodulation, and so reduce the possible data rate. And the ISI maystill extend beyond the guard interval, reducing the signal tointerference ratio of the demodulated signal, and the data rate.

For both single and muiticarrier modulation, linear equalization is thesimplest type of equalization. Decision feedback equalization (i.e. ISIcancellation) provides better performance. Turbo decision feedbackequalization, where the equalization is iterated, using hard or softdecisions from an error correcting code, gives even better performance.And combined turbo equalization and turbo decoding, where theequalization is iterated, in conjunction with the decoding of aconcatenated error correcting code that is also iterated, gives evenbetter performance.

Iteratively decoded error correcting codes provide the greatest codinggain, and can be combined with OFDM, Iteratively decoded errorcorrecting codes include: parallel concatenated convolutional codes,serially concatenated convolutional codes, serially concatenated trelliscoded modulation and block codes, and low density parity check (LDPC)codes.

The performance of OFDM receivers would be improved by combined turboequalization and turbo decoding.

The International Telecommunications Union (ITU) Asymmetric DigitalSubscriber Line (ADSL) and Very High Speed Digital Subscriber Line(VDSL) standards, 3GPP LTE standard, IEEE 802.11a/g/n/ac wireless LANstandards, and others, specify OFDM.

The ADSL and VDSL standards specify an error correcting code consistingof serially concatenated trellis coded modulation (TCM) and Reed Solomonblock codes, with convolutional interleaving. The 3GPP LTE standardspecifies a parallel concatenated convolutional code, with turbodecoding. The 802.11n/ac standards include LDPC codes as an optionalfeature.

LTE cell phones use OFDM, and Parallel Concatenated Convolutional Codeswith turbo decoding for error correction. Equalization has been treatedindependently. The standard provides for two different lengths of cyclicprefix, so that linear equalization can be used.

ADSL and VDSL use OFDM, and serially concatenated trellis codedmodulation and Reed Solomon block codes for error correction. Singleiteration decoding has been used. And linear equalization has been used.

EXAMPLES OF FEATURES

Buffering of one or more OFDM symbols which is greater than or equal tothe interleaving between the component codes of a concatenated code.Where the error correcting code is a parallel or serial concatenatedcode (i.e., consists of two or more component codes, and one or moreinterleavers,) or LDPC code. And the interleaving may extend over morethan one OFDM symbol.

Buffering of OFDM symbols, and ISI subtraction in the frequency domain.

Hard or soft re-encoded data to the decision feedback equalizer from twoclasses of data: 1.) A synchronization symbol. Or an inner or firstcomponent decoder. 2.) An outer or second component decoder. Or eithercomponent decoder on second or later decoding iterations. The secondclass of data is only available after the interleaver or deinterleaverdelay, and so is not available for the first iteration of decisionfeedback equalization.

A constellation demapper and mapper that supports variable sizeconstellations.

Transmitted symbol replica includes replication of PAR reduction.

IFFT and FFT fast convolution for replica of the channel and receiverprefiltering.

Summing of the received signal replica and echo replica (for any echocancellation) in the frequency domain.

EXAMPLES OF EMBODIMENTS

Received, time domain OFDM symbols from the analog front end (AFE) arefirst prefiltered/pre-equalized. The prefiltering/pre-equalization hastwo functions: The filtering rejects out of band noise. And high passfiltering/equalization has a channel shortening effect. I.e., it reducesthe effective length of the channel impulse response. Call the newestprefiltered/pre-equalized time domain OFDM symbol, rx_(n)(v).

The time domain OFDM symbols next have their cyclic extensions removed,leaving time domain symbols that are the size of the following HT.

The time domain symbols are next buffered. The buffer contains symbolsto be decision feedback equalized and decoded. And stores at leastenough symbols to cover the interleaving of the concatenated code used.Given a block interleaver of size i bits, or a convolutional interleaverwith delay i bits, and OFDM symbols that carry j bits, and not requiringthat i/j=an integer, i.e. interleaving can end on an arbitrary bit in anOFDM symbol. And calling the minimum buffer size b. Then for blockinterleavers, b=the integer part of (i/j) +(1 if the fractional part ofi/j is not equal to zero) i.e., b=ceiling (i/j)+1. For convolutionalinterleavers, b is analogous to the constraint length of a convolutionalcode, so it may advantageous to buffer c * b OFDM symbols, with c aninteger from 2 to 10.

Received OFDM symbols to be turbo equalized and turbo decoded are storedin a time domain or frequency domain OFDM symbols buffer. Call theindices of the oldest OFDM symbol in the buffer m, and the newest n,then n=m+b−1. For convenience, assume that the ISI extends into onefollowing symbol. And call d the index of the symbol whose data is usedto decision feedback equalize the symbol with index d+1. Then d rangesfrom less than or equal to m-1 (symbols which have been decoded) to n-1.Data from symbolm−1 is used to decision feedback equalize symbolm, datafrom symbolm to DFE symbolm+1 . . . data from symbolm+1 to DFE symboln.Assume that the last OFDM symbol removed from the buffer was either asynchronization symbol or was decoded, so that its data is available todecision feedback equalize the oldest symbol in the buffer.

Decision feedback equalization is performed on the buffered symbols.Using iteratively decoded data, a replica of the intersymbolinterference from each OFDM symbol is generated, and subtracted from thefollowing symbol. Each replica of intersymbol interference,replica_isid+1(t), is the portion of a replica of a complete receivedOFDM symbol, replica_r×d(v), that extends past the cyclic extension intothe portion of the following received OFDM symbol which is demodulatedby the FFT, rx_zd+1(t).

The decision feedback equalized time domain signal, rx_z(t), is theinput to a FFT, which outputs constellation points in the frequencydomain, Rx_Z(f). The constellation points go to a Frequency DomainEqualizer (FEQ), which does one complex multiplication of eachconstellation point, to correct amplitude and phase.

The equalized constellation points are parallel to serial converted, andgo to a SISO constellation demapper. After the parallel to serialconversion, OFDM may be viewed as single carrier modulation, with theexception of variable sized constellations.

The SISO constellation demapper accepts constellation pointsrepresenting one or more bits, and the number of bits that eachconstellation represents. It outputs encoded bits, with reliabilityinformation for all of the bits, for turbo decoding.

For the decision feedback equalization, data from the turbo decoder isinput to a re-encoder, and the re-encoded data is used to generate thereplicas of the ISI.

The input to the first or inner component decoder of a concatenated codedoes not require any interleaving or deinterleaving to be decoded. Andcan be decoded as a single, non-concatenated code. The input to thesecond or outer component decoder of a concatenated code requiresinterleaving or deinterleaving. And the interleaving may extend overmultiple OFDM symbols. Which are first buffered, but not yet decisionfeedback equalized. Due to the interleaving, some of the data needed todecode the second or outer component code, and use it for decisionfeedback equalization, may be contained within symbols that have not yetbeen decision feedback equalized and decoded themselves. So one class ofdata is used for the first iteration of decision feedback equalization,and another class for the subsequent iterations. Both classes may beeither hard or soft data. If the interleaving fits within one OFDMsymbol, then the data can be turbo decoded without any decoding of thefollowing symbols. But if the interleaving extends over more than oneOFDM symbol, then both classes of data are used.

DATA CLASSES

Data available before the interleaving or deinterleaving delay. Whichincludes: Synchronization symbols. And data decoded by a first (for aparallel concatenated code) or inner (for a serially concatenated code)component decoder.

Data which is only available after the interleaving or deinterleavingdelay. Which includes the output of the second or outer componentdecoder, and the output of either decoder for the second or lateriterations of the turbo decoder.

Synchronization symbols can be decoded as hard data, without anydecoding of the following symbols. First or inner component codes can bedecoded as for a code that isn't concatenated, without any interleavingdelay. And can be re-encoded for the first iteration of decisionfeedback equalization.

As with any concatenated code, after data is decoded by the first orinner decoder, it is then deinterleaved or interleaved, and becomesavailable to the second or outer decoder. After enough data is availableto the second or outer decoder, the turbo decoder can execute one ormore decoding iterations (for each iteration of decision feedbackequalization). After the interactions of the turbo decoder, new turbodecoded data is available for re-encoding. Then class 2 data can beprovided to the re-encoder. And decision feedback equalization and turbodecoding iterated.

When the second or outer component code is a systematic code, the datadoes not need to be re-encoded, since when a code is systematic thedecoder's output is a corrected version of its input. It may beconvenient to use a decoder that outputs data only, rather than data andparity, and re-encode the parity.

For parallel concatenated codes, decoded data that's not interleaved isinterleaved to re-encode parity 2. For serially concatenated codes, datathat's been decoded by the outer component decoder is interleaved tore-encode the inner component code.

One or more iterations of the turbo decoder may be performed for eachiteration of the turbo equalization. After the interactions of the turbodecoder, new turbo decoded data is available for re-encoding.

Each replica of ISI is generated by first generating a replica of thetransmitted signal, and then filtering it by the received frequencyresponse (RFR). Where the RFR equals the filtering from the transmittedconstellations to the FFT demodulator. So the RFR=any transmitter gainscaling of constellations x the channel frequency response x thereceiver prefiltering/pre-equalization frequency response. And the RFRand received impulse response (RIR) are a Fourier transform pair.

Replicas of the transmitted OFDM symbols can be generated by:

Constellation mapping the hard or soft re-encoded data. Theconstellations may be of variable sizes, i.e. each constellation pointmay represent one or more data bits. A table stores the number of databits for each frequency bin (subcarrier) from f=0 to the highesttransmitted frequency bin. n data bits are mapped to one of 2̂nconstellation points. Where each constellation point is a point in theEuclidean plane, described by a complex number, Z=X +jY. Call theoutputs of the constellation mapper, Replica_Z_(f)=X_(f)+jY_(f). Forunused frequencies Replica Z_(f)=0. Note that while transmitters mayinclude gain scaling or transmit spectrum shaping, so thatZ_(f)=g_(f)×(X_(f)+jY_(f)) it is not necessary to include gain scalingat this stage. As the following convolution with the channel impulseresponse will scale all frequencies according to the received frequencyresponse.

performing a serial to parallel conversion of the constellation points,Replica_Z_(f), giving the frequency domain inputs to an inverse fastFourier transform.

performing an IFFT, Reptica_Z(f)->replica_z(t). The LEFT generatesN_(td) real time domain samples, i.e. modulates the constellationpoints. An oversampled IFFT may be used. In which case Z (f) is zeropadded.

inserting the cyclic extension. Call reptica_z(t) with its cyclicextension, and PAR reduction replica_tx(u). The cyclic extension acts asa guard interval, which is removed by the receiver before demodulation,so that intersymbol interference that is constrained within the cyclicextension is ignored. The cyclic extension may consist of only a cyclicprefix, or both a cyclic prefix and cyclic suffix. A cyclic prefixprepends the last n_(cp) samples of replica_z(t) to the beginning ofreplica_z(t). A cyclic suffix appends the first n_(cs) samples ofreplica_z(t) to the end of replica_z(t). A windowing, of length β, maybe used to overlap the cyclic suffix of an OFDM symbol with the cyclicprefix of the following OFDM symbol. Then the number of samples of thecyclic extension, N_(ce)=N_(cp)+N_(cs)−β. Call the number of samples ofan OFDM symbol N_(sym)N_(td)+N_(ce). Call the number of samples of thereceived impulse response N_(rir). If n_(Nir) is less than or equal ton_(ce), then the intersymbol interference has been constrained to fitwithin the cyclic extension, and will not be demodulated. Since thecyclic extension is a guard interval which is not demodulated, thecyclic extension reduces the data rate.

performing any PAR reduction, giving a time domain replica of thetransmitted OFDM symbol. PAR reduction may be as simple as clipping.

filtering the replica of the transmitted signal by the receivedfrequency response produces a replica of the received signal. So a timedomain replica of the received signal equals, a time domain replica ofthe transmitted signal convolved with the received impulse response. Anda frequency domain replica of the received signal equals, a frequencydomain replica of the transmitted signal multiplied by the receivedfrequency response.

The time domain filtering may be by direct convolution, i.e., a finiteimpulse response filter. Then the replica of the receivedreplica_rx(t)=replica_tx(t) * response_rx(t)

Or the filtering may be performed by a fast circular convolution asfollows:

Call the replica of the transmitted OFDM symbol in the time domain,replica_tx (u). Zero pad replica_tx (u) to a length greater than orequal to one OFDM symbol plus the ISI to be replicated. Preferably theprefilter/pre-equalizer will shorten the effective channel so that thiswill be 2×N_(td).

Perform an FFT, replica_tx(u)->Replica_Tx(g), to transform the zeropadded time domain representation to the frequency domain.

Zero pad the estimate of the received frequency response above thehighest transmitted frequency, giving an RFR(g) that is equal in lengthto Replica_Tx(g).

Multiply in the frequency domain, Replica _(g)=RFR(g) * Replica_Tx(g),to give a replica of the received signal in the frequency domain..

When using echo cancellation, the replica of the echo in the frequencydomain may be added to the replica of the received signal in thefrequency domain. Replica_Rx(g)=Replica_Rx(g)+Replica_Echo(g).

Perform an IFFT, Replica_Rx(g)->replica_rx(v). Giving a replica of thereceived OFDM symbol, with echo if it was added, in the time domain.

Extract the portion of replica_rx(v) which extends into the followingsymbol. Which gives the replica of the intersymbol interference,replica_isi(t).

The buffering and ISI cancellation may be performed in the frequencydomain, rather than the time domain. In which case, the received timedomain OFDM symbols without cyclic extension, rx_z_(n)(t), are input toan FFT, transforming them to frequency domain symbols, Rx_Z_(n)(f). Andnext frequency domain equalized, by one complex multiplication for eachfrequency bin, giving Rx_Feq_(n)(f). And next buffered. In which case,the filtering of the replicas of the transmitted time domain OFDMsymbols, replica is by the product of the RFR and the FEQ. Each timedomain ISI replica, replica_isi_(d+1)(f) is input to an FFT, giving afrequency domain ISI replica, Replica_ISI_(d+1)(f). EachReplica_ISI_(d+1)(f) is subtracted from the buffered Rx_Feq_(d+1)(f),giving Rx_Eq_(d+1)(f).

Note that, time domain decision feedback equalization of an OFDM signalis equivalent to passband DFE of a single carrier signal. And frequencydomain DFE of an OFDM signal is equivalent to baseband DEE of a singlecarrier signal.

Also the time domain OFDM signal can be split into two or more bands,where the higher frequency band(s) are prefiltered by a high passfilter/equalizer with a high enough cut off frequency that the remainingIntersymbol Interference is of short enough duration to fit within thecyclic extension, so that no further equalization is needed for thatband. I.e. the prefilter high pass filter/equalize has enough of achannel shortening effect. Then the lower band(s) can be processed at alower sampling rate than the full signal.

In some implementations, a turbo decoding method, as disclosed above,includes receiving a plurality of orthogonal frequency divisionmultiplexing (OFDM) symbols, generating replicas of the receivedplurality of OFDM symbols to reduce a peak to average ratio, and summingthe generated replicas with echo replicas in frequency domain to performecho cancellation.

In some implementations, a disclosed combined turbo decoding andequalization method includes receiving a plurality of turbo coded,orthogonal frequency division modulation (OFDM) symbols, demodulating,turbo decision feedback equalizing, and turbo decoding the receivedplurality of OFDM symbols, generating replicas of the transmittedplurality of OFDM symbols, channel, and intersymbol interference,buffering of the received plurality of OFDM symbols, and ISI subtractionin the time domain or the frequency domain, and summing the generatedreplicas with echo replicas in time domain or the frequency domain toperform echo cancellation.

FIG. 12 is a flowchart representations of a process 2100 for turbodecoding for DSL. At 2102, in a synchronization buffer, encoded datafrom a constellation demapper and. trellis decoder is received. At 2104,an output of the synchronization buffer is convolutionallydeinterleaved. At 2106, the deinterleaved output of the synchronizationbuffer is decoded. At 2108, soft or hard decoded bits are generated fromthe &interleaved output.

It will be appreciated that techniques are disclosed for turbo decodingOFDM symbols. It wilt further be appreciated that techniques forcombined turbo decoding and equalization are disclosed. The disclosedtechniques can be implemented in receivers that receive wired orwireless OFDM signals and produce data and control bits by decoding thereceived signals.

The disclosed and other embodiments and the functional operations andmodules described in this document can be implemented in digitalelectronic circuitry, or in computer software, firmware, or hardware,including the structures disclosed in this document and their structuralequivalents, or in combinations of one or more of them. The disclosedand other embodiments can be implemented as one or more computer programproducts, i.e., one or more modules of computer program instructionsencoded on a. computer readable medium for execution by, or to controlthe operation of, data processing apparatus. The computer readablemedium can be a machine-readable storage device, a machine-readablestorage substrate, a memory device, a composition of matter effecting amachine-readable propagated signal, or a combination of one or morethem. The term “data processing apparatus” encompasses all apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them. A propagated signal is an artificially generated signal, e.g.,a machine-generated electrical, optical, or electromagnetic signal, thatis generated to encode information for transmission to suitable receiverapparatus.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, and it can bedeployed in any form, including as a stand alone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system, A program can be stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this document can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices, Computer readable media suitable for storingcomputer program instructions and data include all forms of non volatilememory, media and memory devices, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto optical disks; and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

While this document contains many specifics, these should not beconstrued as limitations on the scope of an invention that is claimed orof what may be claimed, but rather as descriptions of features specificto particular embodiments. Certain features that are described in thisdocument in the context of separate embodiments can also be implementedin combination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesub-combination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asub-combination or a variation of a sub-combination. Similarly, whileoperations are depicted in the drawings in a particular order, thisshould not be understood as requiring that such operations be performedin the particular order shown or in sequential order, or that allillustrated operations be performed, to achieve desirable results.

Only a few examples and implementations are disclosed. Variations,modifications, and enhancements to the described examples andimplementations and other implementations can be made based on what isdisclosed.

What is claimed is:
 1. A turbo decoding method, comprising: receiving aplurality of orthogonal frequency division multiplexing (OFDM) symbols;generating replicas of the received plurality of OFDM symbols to reducea peak to average ratio; and summing the generated replicas with echoreplicas in frequency domain to perform echo cancellation.
 2. The methodof claim 1, further comprising: operating a constellationmapper-demapper to process variable size constellations.
 3. The methodof claim 1, further comprising: buffering a number of received OFDMsymbols so that the number is greater than or equal to an interleavingwithin a concatenated code used to error code the received plurality ofOFDM symbols.
 4. The method of claim 1, further including: operating adecision feedback equalizer to receive hard or soft re-encoded data fromtwo different classes of data.
 5. The method of claim 4, wherein the twodifferent classes of data comprise a first class of data comprising asynchronization symbol and a second class of data comprising output ofan outer decoder of turbo decoding.
 6. An apparatus for performing turbodecoding of data comprising: a processor; a module that receives aplurality of orthogonal frequency multiplexing (OFDM) symbols; a modulethat generates replicas of the received plurality of OFDM symbols toreduce a peak to average ratio; and a module that sums the generatedreplicas with echo replicas in frequency domain to perform echocancellation.
 7. The apparatus of claim 6, further comprising: aconstellation mapper-demapper to process variable size constellations.8. A method of decoding received symbols in an orthogonal frequencydivision multiplexing (OFDM) system, comprising: receiving, in asynchronization buffer, encoded data from a constellation demapper andtrellis decoder; convolutionally deinterleaving an output of thesynchronization buffer; decoding the deinterleaved output of thesynchronization buffer; and generating soft or hard decoded bits fromthe deinterleaved output,
 9. The method of claim 8, wherein thegenerating hard coded bits is an iterative process in which for alliterations except a last iteration, a buffer is used to extract a numberof bits from an incoming frame.
 10. An apparatus for decoding receivedsymbols in an orthogonal frequency division multiplexing (OFDM) system,comprising: a synchronization buffer; a module that receives, in thesynchronization buffer, encoded data from a constellation demapper andtrellis decoder; a module that convolutionally deinterleaves an outputof the synchronization buffer; a module that decodes the deinterleavedoutput of the synchronization buffer; and a module that generates softor hard decoded bits from the deinterleaved output.
 11. The apparatus ofclaim 10, wherein the module that generates hard coded bits performs aniterative process in which for all iterations except a last iteration, abuffer is used to extract a number of bits from an incoming frame.
 12. Acombined turbo decoding and equalization method, comprising: receiving aplurality of turbo coded, orthogonal frequency division modulation(OFDM) symbols; demodulating, turbo decision feedback equalizing, andturbo decoding the received plurality of OFDM symbols; generatingreplicas of the transmitted plurality of OFDM symbols, channel, andintersymbol interference; buffering of the received plurality of OFDMsymbols, and ISI subtraction in the time domain or the frequency domain;and summing the generated replicas with echo replicas in time domain orthe frequency domain to perform echo cancellation.
 13. The method ofclaim 12, wherein the least significant bits of constellations are bothblock coded and trellis coded, and the most significant bits block codedonly.
 14. The method of claim 12, further including: turbo decodingserially concatenated TCM and Reed Solomon block codes, withconvolutional interleaving.
 15. An apparatus for performing combinedturbo decoding and equalization, comprising: a module that receives aplurality of turbo coded, orthogonal frequency division modulation(OFDM) symbols; a module that demodulates, turbo decision feedbackequalizing, and turbo decoding the received plurality of OFDM symbols; amodule that generates replicas of the transmitted plurality of OFDMsymbols, channel, and intersymbol interference; a buffer that buffers ofthe received plurality of OFDM symbols, and ISI subtraction in the timedomain or the frequency domain; and a module that sums the generatedreplicas with echo replicas in time domain or the frequency domain toperform echo cancellation.
 16. The apparatus of claim 15, wherein theleast significant bits of constellations are both block coded andtrellis coded, and the most significant bits block coded only.
 17. Theapparatus of claim 15, further including: a module that turbo decodesserially concatenated TCM and Reed Solomon block codes, withconvolutional interleaving.